idea中编写spark程序并打包到集群执行 |
您所在的位置:网站首页 › idea spark插件 › idea中编写spark程序并打包到集群执行 |
本篇主要介绍了如何使用IDEA在本地打包Spark应用程序(以K-Means为例),并提交到集群执行。 1、 安装JDK与Scala SDK JDK和Scala SDK的安装在这里不再赘述,需要注意的是:要设置好环境变量,这样新建项目时就能自动检测到对应的版本,同时版本最好不要太高,以避免版本不兼容的问题,本篇采用的是JDK 8.0与Scala 2.10.6。 JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/ Scala下载地址:http://www.scala-lang.org/download/ 2、 安装IDEA IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一, IDEA每个版本提供Community(社区版)和Ultimate(商业版)两个edition,其中Community是完全免费的,Ultimate版本可以试用30天,下载地址:http://www.jetbrains.com/idea/download/ 2.1 安装Scala插件 根据安装向导安装好IDEA后,需要安装scala插件,有两种途径可以安装scala插件(本篇已经安装好了scala插件,故在这一步作更新): 启动IDEA -> Welcome to IntelliJ IDEA -> Configure -> Plugins -> Install JetBrains plugin… -> 找到scala后安装。启动IDEA -> Welcome to IntelliJ IDEA -> Open Project -> File -> Settings -> plugins -> Install JetBrains plugin… -> 找到scala后安装。2.2 设置IDEA风格 如果想使用那种酷酷的黑底界面,可以在File -> Settings -> Appearance -> Theme选择Darcula,保存后重新进入即可。 3、 新建Scala项目 3.1 单击file->new project,选择Scala,如果没有安装scala插件就没有这个选项,在项目的基本信息中填写项目名称、项目所在位置以及对应的Project SDK和Scala SDK(环境变量配置好了会自动匹配)。 3.2 设置项目structure 创建好项目后,可以看到现在还没有源文件,只有一个存放源文件的目录src以及存放工程其他信息的杂项。通过双击src目录或者点击菜单上的项目结构图标可以打开项目配置界面,src单击右键选择“new folder”添加src->main->scala,并设置为Sources类型,如下图所示: 3.3 配置Library 选择Libraries目录,添加Scala SDK Library,这里选择scala-2.10.6版本。添加Java Library,选择spark-assembly-1.6.1-hadoop2.2.0.jar(在spark的lib中可以找到),本篇将一些常用的JAR包放到了一个文件夹,故在此添加的是sparklib。3.4 编写程序 在src->main->scala下创建helloword包,在该包中添加kmeans对象文件(新建scala类,在弹出的框中kind选择Object),具体代码如下所示,完成之后的整体结构如下图所示: import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.mllib.clustering.KMeans import org.apache.spark.mllib.linalg.Vectors object kmeans{ def main(args: Array[String]) { // 设置运行环境 val conf = new SparkConf().setAppName("Kmeans") val sc = new SparkContext(conf) // 从HDFS中装载数据集 val data = sc.textFile("input/kmeans_data.txt") val parsedData = data.map(s => Vectors.dense(s.split(" ").map(_.toDouble))) // 将数据集聚类,3个类,20次迭代,进行模型训练形成数据模型 val numClusters = 2 val numIterations = 20 val model = KMeans.train(parsedData, numClusters, numIterations) // 打印数据模型的中心点 println("Cluster centers:") for (c |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |